home *** CD-ROM | disk | FTP | other *** search
/ Adobe Digital Video Collection / Digital Video Collection CD.iso / After Effects 5.5 / MMScriptGer.Cab / F115657_Gravity.mm < prev    next >
Encoding:
Text File  |  2001-12-07  |  1.5 KB  |  44 lines

  1. // Gravitation - Version D1-1.3
  2.  
  3. // Dieses Skript wendet eine Gravitationskraft auf Ebene 1 an. Die Ausgangsgeschwindigkeit
  4. // entspricht der Geschwindigkeit am Anfang des Arbeitsbereiches.
  5.  
  6. //      EBENE                                   EIGENSCHAFT                        KANAL
  7. //      -----                                   -------------                       ------
  8. // 1: VerΣnderte Ebene                        Wird nicht berⁿcksichtigt       Wird nicht berⁿcksichtigt
  9. // 2: Wird nicht berⁿcksichtigt                Wird nicht berⁿcksichtigt       Wird nicht berⁿcksichtigt
  10.  
  11. if (time() == start_time) {
  12.     vel = tmap (time() + step_time, value(pop_layer(1), position)) -
  13.            value(pop_layer(1), position);
  14.     damping = 0.95;                                // DΣmpfung (0 = unendlich gro▀, 1 = unendlich klein)
  15.     grav = 0.9;                                         // Gravitationskraft
  16.     grav_dir = {0,1,0};                        // Gravitationsrichtung
  17.     accel = grav * grav_dir;      // Gravitationsvektor
  18.  
  19.     new_pos = value(pop_layer(1), position);
  20. } else {
  21.  
  22.     vel = vel*damping + accel;                        // Geschwindigkeit beschleunigen
  23.     new_pos = new_pos + vel;                 // Geschwindigkeit auf Position anwenden
  24.     
  25.     // Bei Erreichen des Kompositionsrandes abprallen
  26.     if (new_pos[X] < 0) {
  27.         new_pos[X] = 0;
  28.         vel = {-vel[X], vel[Y]};
  29.     }
  30.     if (new_pos[Y] < 0) {
  31.         new_pos[Y] = 0;
  32.         vel = {vel[X], -vel[Y]};
  33.     }
  34.     if (new_pos[X] > comp_size[X]) {
  35.         new_pos[X] = comp_size[X];
  36.         vel = {-vel[X], vel[Y]};
  37.     }
  38.     if (new_pos[Y] > comp_size[Y]) {
  39.         new_pos[Y] = comp_size[Y];
  40.         vel = {vel[X], -vel[Y]};
  41.     }    
  42. }
  43. value(pop_layer(1), position) = new_pos;
  44.